package cn.itcast.demo04;

import java.io.FileReader;
import java.io.IOException;
import java.util.Arrays;

/*
类 Reader;字符输入流
 int read()
          读取单个字符。
 int read(char[] cbuf)
          将字符读入数组。
abstract  int read(char[] cbuf, int off, int len)
          将字符读入数组的某一部分。

abstract  void close()
          关闭该流并释放与之关联的所有资源。


类 FileReader
java.lang.Object
  继承者 java.io.Reader
      继承者 java.io.InputStreamReader
          继承者 java.io.FileReader
作用；
把硬盘文件中的数据以字符的方式读取到内存中

构造方法；
FileReader(String fileName)
          在给定从中读取数据的文件名的情况下创建一个新 FileReader。
FileReader(File file)
          在给定从中读取数据的 File 的情况下创建一个新 FileReader

      字符输入流的使用步骤；
      1，创建一个FileReader对象，构造方法中绑定要读取的数据源
      2，使用FileReader对象中的方法read读取文件
      3，释放资源
 */
public class Demo02Reader {
    public static void main(String[] args) throws IOException {
        //1，创建一个FileReader对象，构造方法中绑定要读取的数据源
        FileReader fr = new FileReader("E:\\WkJava\\day02-code\\c.txt");
        //2，使用FileReader对象中的方法read读取文件
        /*int len = 0;
        while ((len= fr.read())!=-1){
            System.out.print((char) len);
        }
         */

        //int read(char[] c)一次读取多个字符，将字符读入数组
        char[] chars = new char[1024];//存储读取的多个字符
        int len = 0;//记录的是每次读取的有效字符个数
        while ((len= fr.read(chars))!=-1){
            System.out.println(new String(chars,0,len));
        }

        fr.close();
    }
}

